<?php

/**
 * Controlador de tipo de kpisInbound
 * 
 * @category   Controller
 * @package    modules__models
 * @author     Jose Miguel De Jesus <josejm07@hotmail.com>
 * @copyright  Todos los derechos reservados. Company24h. 2013.
 * 
 * @see        Administrador
 * @since      Version 1.0, revision 1.
 */
class kpisInbound extends Controller{
    
    
    public function __construct()
	{
		parent::Controller();
		
                $this->load->model(array('mservicios', 'usuarios', 'mmodeloservicios',
		                         'mtransaccionentrada', 'detallerentradas', 'mtipoentrada','mprovincia2',
		                         'mregistro', 'mmotivosalida', 'TransaccionHistorico', 'Merror','mscore',
                                             'registroeqsmodel','tiposeguimientomodel','mservicios','mjurisdiccion',
                                             'mresponsable'));
	}
    
          /**
	 * 
	 * Esta funcion index es la que me va a cargar la vista.
	 */
	public function index()
	{
		/// $this->load->view('googlechart',array('content_page' => 'kpisInbound', 'menutop' => 0 ));
                    $this->busquedaGraficoInbound();
	}
          
          public function busquedaGraficoInbound()
                  {
                    $fDesde = $this->input->post('fdesde')? $this->input->post('fdesde'): date('Y-m-d', strtotime('-1 week')); // resta 1 semana
                    $fHasta = $this->input->post('fhasta')? $this->input->post('fhasta'): date('Y-m-d');//fecha actual
                    $select = $this->input->post('select')? $this->input->post('select'): NULL;
                    
                    $fHasta = date("Y-m-d", strtotime("$fHasta +1 day"));
       
                    $records = $this->mtransaccionentrada->LoadGraficoKpis($select,0,0,NULL);
                    $semafaro = array(
                        "verde" => 0,
                        "amarrillo" => 0,
                        "rojo" => 0
                    );
                    $cInbound60 = array();
                            
                     $idservicio1 = $this->mservicios->Loadservicios();
   
                    foreach ($idservicio1 as $key)
                        {
                             $servisio =  $key->getNombreServicio();
                             $cInbound60["$servisio"]=0;
                        }
 
                    foreach ($records as $key)
                        {
                        $cantidad =$this->CalcularDias3($key->getDateSistema());
                        
                         if ($key->getProximoContacto() == $key->getDateSolicitud()) {
		                 	$pociento = 100;
		                 }   
				else {
		         $hora = $this->CalcularDias($key->getDateSolicitud(),$key->getProximoContacto());
		         $hora2 = $this->CalcularDias(date("Y-m-d"),$key->getProximoContacto());
		         $porciento = $hora2/$hora;
		         $porciento = $porciento * 100;
		         $pociento =  100 - $porciento ; 
		         $pociento = intval($pociento);
				}
                         
                          if ($pociento < 1) {
		             	$porciento_neto = '0';
		             }
                         
                        if ($pociento < 85)
		         {
		            $semafaro["verde"]++;
		         } 
		        elseif ($pociento >= 100)
		       {
		         	$semafaro["rojo"]++;
		       }       
		        else 
		        {
		           $semafaro["amarrillo"]++;	
		        } 
                                 
                                 
                        if($cantidad >= 60)
                            {
                            
                            $idservicio = $this->mservicios->LoadServicioById($key->getIdServicios());
                            $nombreDelServicio = $idservicio->getNombreServicio();
                            
                            $cInbound60["$nombreDelServicio"]++;
                            }                        
                        }
                        
                     $tipoEntrda =  $this->ib_tipoEntrada($select,$fDesde, $fHasta);
                     $tipoSalida = $this->ib_Salida($select,$fDesde, $fHasta);
                     
                     $tabla = array();
                     
                     if($select){
                         
                       $tabla["select"] = $this->usuarios->LoadUsuarioById($select);
                         
                     }  else {
                     
                         $tabla["select"] = $select;
                     }
                     
                     
                     $tabla["fDesde"] = $fDesde;
                     $tabla["Fhasta"] = $fHasta;
                     
                             $this->load->view('googlechart',array('content_page' => 'kpisInbound', 'menutop' => 0,"cInbound60" => $cInbound60,"usuario" => $this->usuarios->LoadUsuarioByIdDep(2),"semafaro"=>$semafaro, "tipoEntrda" =>$tipoEntrda, "tipoSalida"=> $tipoSalida,"tabla" => $tabla));
                  }
                  
                  
                  function CalcularDias3($fechapar)
	{
       
		$fechapar = substr($fechapar,0,10);
		
		$fechaact = date("Y-m-d");
		
		$fechapar_arr=explode('-',$fechapar);
	
		$fechapar_mk=mktime(0,0,0,$fechapar_arr[1],$fechapar_arr[2],$fechapar_arr[0]);
		$fechapar_mk=intval($fechapar_mk);

		$fechaact_arr=explode('-',$fechaact);
		$fechaact_mk=mktime(0,0,0,$fechaact_arr[1],$fechaact_arr[2],$fechaact_arr[0]);
		$fechaact_mk=intval($fechaact_mk);

		$segundos_diferencia =$fechaact_mk-$fechapar_mk;
		$dias_diferencia = $segundos_diferencia / (60 * 60 * 24);
		return  $dias_diferencia;

	}
          
           function CalcularDias($fechapar,$fechaact)
   {
       
		$fechapar = substr($fechapar,0,10);
		
		$fechaact = substr($fechaact,0,10);
		
		$fechapar_arr=explode('-',$fechapar);
			
		$fechapar_mk=mktime(0,0,0,$fechapar_arr[1],$fechapar_arr[2],$fechapar_arr[0]);
		$fechapar_mk=intval($fechapar_mk);

		$fechaact_arr=explode('-',$fechaact);
		$fechaact_mk=mktime(0,0,0,$fechaact_arr[1],$fechaact_arr[2],$fechaact_arr[0]);
		$fechaact_mk=intval($fechaact_mk);

		$segundos_diferencia =$fechaact_mk-$fechapar_mk;
		$dias_diferencia = $segundos_diferencia / (60 * 60 * 24);
		return  $dias_diferencia;

	}
          
          public function ib_tipoEntrada($select,$fdesde,$fhasta)
          {
              $records = $this->mtransaccionentrada->LoadGraficoKpis($select,$fdesde,$fhasta,1);

              $tipoEntrada = array(
                  "Llamada"=>0,
                  "Solicitud"=>0,
                  "Chat"=>0,
                  "Personal"=>0,
                  "Mail"=>0);

              if($records){
              
             foreach ($records as $key)
              {
               $tipoEntradaRecord = $this->mtipoentrada->LoadEstatusById($key->getdTipoEntrada());
               $tipoEntradaRecord = $tipoEntradaRecord->getNombre();
               $tipoEntrada["$tipoEntradaRecord"]++;   
              }
              }
              
              $recordsHistorico = $this->TransaccionHistorico->LoadGraficoKpis($select,$fdesde,$fhasta,1);
              
              if($recordsHistorico){
              
              foreach ($recordsHistorico as $key)
              {
               $tipoEntradaRecord = $this->mtipoentrada->LoadEstatusById($key->getIdTipoEntrada());
               $tipoEntradaRecord = $tipoEntradaRecord->getNombre();
               $tipoEntrada["$tipoEntradaRecord"]++;    
              }
              }
              return $tipoEntrada;
          }
          
          public function ib_Salida($select,$fdesde,$fhasta)
           {
              
               $tipoSalida = array(
                  "Ventas"=>0,
                  "Basura"=>0,
                  "Confusion"=>0,
                  "No tiene decision"=>0,
                  "Adquirio el Servicio"=>0);
              
               $recordsHistorico = $this->TransaccionHistorico->LoadGraficoKpis($select,$fdesde,$fhasta,1);
              
              if($recordsHistorico){
              
              foreach ($recordsHistorico as $key)
              {
               $tipoSalidaRecord = $this->mmotivosalida->LoadEstatusById($key->getIdMotivoSalida());
               $tipoSalidaRecord = $tipoSalidaRecord->getNombre();
               $tipoSalida["$tipoSalidaRecord"]++;    
              }
              }
              return $tipoSalida;
              
              
              
           }
           
           
           public function query()
                   {
            
               $records = $this->mtransaccionentrada->LoadJurisdiccion();
               
               foreach ($records as $key)
                   {
                   
                   $proceso = $this->detallerentradas->cargarDetallePorRegistro($key->getIdTransaccion());
                   
                   foreach ($proceso as $key)
                       {
                          $data =array(
                              "IdUsuario" => $key->getIdUsuario());
                          
                       $this->mtransaccionentrada->updateRegistro($data,$key->getIdSRegistro());
                       
                       break;
                       }
                   
                   }
                          
                   }
          
          
}

?>
